home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Magazine / YAM / Source / YAM_rexx_rxcl.c < prev    next >
C/C++ Source or Header  |  2001-05-08  |  15KB  |  230 lines

  1. /***************************************************************************
  2.  
  3.  YAM - Yet Another Mailer
  4.  Copyright (C) 1995-2000 by Marcel Beck <mbeck@yam.ch>
  5.  Copyright (C) 2000-2001 by YAM Open Source Team
  6.  
  7.  This program is free software; you can redistribute it and/or modify
  8.  it under the terms of the GNU General Public License as published by
  9.  the Free Software Foundation; either version 2 of the License, or
  10.  (at your option) any later version.
  11.  
  12.  This program is distributed in the hope that it will be useful,
  13.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  GNU General Public License for more details.
  16.  
  17.  You should have received a copy of the GNU General Public License
  18.  along with this program; if not, write to the Free Software
  19.  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  20.  
  21.  YAM Official Support Site :  http://www.yam.ch
  22.  YAM OpenSource project    :  http://sourceforge.net/projects/yamos/
  23.  
  24.  $Id: YAM_rexx_rxcl.c,v 1.3 2001/05/08 22:27:37 damato Exp $
  25.  
  26. ***************************************************************************/
  27. /*
  28.  * Source generated with ARexxBox 1.12 (May 18 1993)
  29.  * which is Copyright (c) 1992,1993 Michael Balzer
  30.  */
  31.  
  32. #include <exec/types.h>
  33. #include <dos/dos.h>
  34. #include <rexx/storage.h>
  35.  
  36. #define NO_GLOBALS
  37. #include "YAM_rexx.h"
  38.  
  39. #define RESINDEX(stype) (((long) &((struct stype *)0)->res) / sizeof(long))
  40.  
  41. char    RexxPortBaseName[80] = "YAM";
  42. char    *rexx_extension = "YAM";
  43.  
  44. struct rxs_command rxs_commandlist[] =
  45. {
  46.     { "ADDRDELETE", "ALIAS", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_addrdelete, 1 },
  47.     { "ADDREDIT", "ALIAS,NAME,EMAIL,PGP,HOMEPAGE,STREET,CITY,COUNTRY,PHONE,COMMENT,BIRTHDATE/N,IMAGE,MEMBER/M,ADD/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_addredit, 1 },
  48.     { "ADDRFIND", "PATTERN/A,NAMEONLY/S,EMAILONLY/S", "ALIAS/M", RESINDEX(rxd_addrfind), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_addrfind, 1 },
  49.     { "ADDRGOTO", "ALIAS/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_addrgoto, 1 },
  50.     { "ADDRINFO", "ALIAS/A", "TYPE,NAME,EMAIL,PGP,HOMEPAGE,STREET,CITY,COUNTRY,PHONE,COMMENT,BIRTHDATE/N,IMAGE,MEMBERS/M", RESINDEX(rxd_addrinfo), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_addrinfo, 1 },
  51.     { "ADDRLOAD", "FILENAME/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_addrload, 1 },
  52.     { "ADDRNEW", "TYPE,ALIAS,NAME,EMAIL", "ALIAS", RESINDEX(rxd_addrnew), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_addrnew, 1 },
  53.     { "ADDRRESOLVE", "ALIAS/A", "RECPT", RESINDEX(rxd_addrresolve), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_addrresolve, 1 },
  54.     { "ADDRSAVE", "FILENAME", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_addrsave, 1 },
  55.     { "APPBUSY", "TEXT", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_appbusy, 1 },
  56.     { "APPNOBUSY", NULL, NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_appnobusy, 1 },
  57.     { "FOLDERINFO", "FOLDER", "NUMBER/N,NAME,PATH,TOTAL/N,NEW/N,UNREAD/N,SIZE/N,TYPE/N", RESINDEX(rxd_folderinfo), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_folderinfo, 1 },
  58.     { "GETCONFIGINFO", "ITEM/A", "VALUE", RESINDEX(rxd_getconfiginfo), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_getconfiginfo, 1 },
  59.     { "GETFOLDERINFO", "ITEM/A", "VALUE", RESINDEX(rxd_getfolderinfo), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_getfolderinfo, 1 },
  60.     { "GETMAILINFO", "ITEM/A", "VALUE", RESINDEX(rxd_getmailinfo), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_getmailinfo, 1 },
  61.     { "GETSELECTED", NULL, "NUM/N/M", RESINDEX(rxd_getselected), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_getselected, 1 },
  62.     { "GETURL", "URL/A,FILENAME/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_geturl, 1 },
  63.     { "HELP", "FILE", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_help, 1 },
  64.     { "HIDE", NULL, NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_hide, 1 },
  65.     { "INFO", "ITEM", "VALUE", RESINDEX(rxd_info), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_info, 1 },
  66.     { "ISONLINE", NULL, NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_isonline, 1 },
  67.     { "LISTSELECT", "MODE/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_listselect, 1 },
  68.     { "MAILARCHIVE", "FOLDER/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailarchive, 1 },
  69.     { "MAILBOUNCE", "QUIET/S", "WINDOW/N", RESINDEX(rxd_mailbounce), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailbounce, 1 },
  70.     { "MAILCHANGESUBJECT", "SUBJECT/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailchangesubject, 1 },
  71.     { "MAILCHECK", "POP/K/N,MANUAL/S", "DOWNLOADED/N,ONSERVER/N,DUPSKIPPED/N,DELETED/N", RESINDEX(rxd_mailcheck), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailcheck, 1 },
  72.     { "MAILCOPY", "FOLDER/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailcopy, 1 },
  73.     { "MAILDELETE", "ATONCE/S,FORCE/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_maildelete, 1 },
  74.     { "MAILEDIT", "QUIET/S", "WINDOW/N", RESINDEX(rxd_mailedit), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailedit, 1 },
  75.     { "MAILEXPORT", "FILENAME/A,ALL/S,APPEND/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailexport, 1 },
  76.     { "MAILFILTER", "ALL/S", "CHECKED/N,BOUNCED/N,FORWARDED/N,REPLIED/N,EXECUTED/N,MOVED/N,DELETED/N", RESINDEX(rxd_mailfilter), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailfilter, 1 },
  77.     { "MAILFORWARD", "QUIET/S", "WINDOW/N", RESINDEX(rxd_mailforward), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailforward, 1 },
  78.     { "MAILIMPORT", "FILENAME/A,WAIT/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailimport, 1 },
  79.     { "MAILINFO", "INDEX/N", "INDEX/N,STATUS,FROM,TO,REPLYTO,SUBJECT,FILENAME,SIZE/N,DATE,FLAGS,MSGID/N", RESINDEX(rxd_mailinfo), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailinfo, 1 },
  80.     { "MAILMOVE", "FOLDER/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailmove, 1 },
  81.     { "MAILREAD", "WINDOW/N,QUIET/S", "WINDOW/N", RESINDEX(rxd_mailread), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailread, 1 },
  82.     { "MAILREPLY", "QUIET/S", "WINDOW/N", RESINDEX(rxd_mailreply), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailreply, 1 },
  83.     { "MAILSEND", "ALL/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailsend, 1 },
  84.     { "MAILSENDALL", NULL, NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailsendall, 1 },
  85.     { "MAILSTATUS", "STATUS/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailstatus, 1 },
  86.     { "MAILUPDATE", NULL, NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailupdate, 1 },
  87.     { "MAILWRITE", "WINDOW/N,QUIET/S", "WINDOW/N", RESINDEX(rxd_mailwrite), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_mailwrite, 1 },
  88.     { "NEWMAILFILE", "FOLDER", "FILENAME", RESINDEX(rxd_newmailfile), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_newmailfile, 1 },
  89.     { "QUIT", "FORCE/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_quit, 1 },
  90.     { "READCLOSE", NULL, NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_readclose, 1 },
  91.     { "READINFO", NULL, "FILENAME/M,FILETYPE/M,FILESIZE/N/M,TEMPFILE/M", RESINDEX(rxd_readinfo), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_readinfo, 1 },
  92.     { "READPRINT", "PART/N", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_readprint, 1 },
  93.     { "READSAVE", "PART/N,FILENAME/K,OVERWRITE/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_readsave, 1 },
  94.     { "REQUEST", "BODY/A,GADGETS/A", "RESULT/N", RESINDEX(rxd_request), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_request, 1 },
  95.     { "REQUESTFOLDER", "BODY/A,EXCLUDEACTIVE/S", "FOLDER", RESINDEX(rxd_requestfolder), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_requestfolder, 1 },
  96.     { "REQUESTSTRING", "BODY/A,STRING/K,SECRET/S", "STRING", RESINDEX(rxd_requeststring), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_requeststring, 1 },
  97.     { "SCREENTOBACK", NULL, NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_screentoback, 1 },
  98.     { "SCREENTOFRONT", NULL, NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_screentofront, 1 },
  99.     { "SETFLAG", "VOL/K/N,PER/K/N", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_setflag, 1 },
  100.     { "SETFOLDER", "FOLDER/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_setfolder, 1 },
  101.     { "SETMAIL", "NUM/N/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_setmail, 1 },
  102.     { "SETMAILFILE", "MAILFILE/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_setmailfile, 1 },
  103.     { "SHOW", NULL, NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_show, 1 },
  104.     { "USERINFO", NULL, "USERNAME,EMAIL,REALNAME,CONFIG,MAILDIR,FOLDERS/N", RESINDEX(rxd_userinfo), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_userinfo, 1 },
  105.     { "WRITEATTACH", "FILE/A,DESC,ENCMODE,CTYPE", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writeattach, 1 },
  106.     { "WRITEBCC", "ADDRESS/A/M,ADD/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writebcc, 1 },
  107.     { "WRITECC", "ADDRESS/A/M,ADD/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writecc, 1 },
  108.     { "WRITEEDITOR", "COMMAND/A", "RESULT", RESINDEX(rxd_writeeditor), (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writeeditor, 1 },
  109.     { "WRITEFROM", "ADDRESS/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writefrom, 1 },
  110.     { "WRITELETTER", "FILE/A,NOSIG/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writeletter, 1 },
  111.     { "WRITEMAILTO", "ADDRESS/A/M", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writemailto, 1 },
  112.     { "WRITEOPTIONS", "DELETE/S,RECEIPT/S,NOTIF/S,ADDINFO/S,IMPORTANCE/N,SIG/N,SECURITY/N", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writeoptions, 1 },
  113.     { "WRITEQUEUE", "HOLD/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writequeue, 1 },
  114.     { "WRITEREPLYTO", "ADDRESS/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writereplyto, 1 },
  115.     { "WRITESEND", NULL, NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writesend, 1 },
  116.     { "WRITESUBJECT", "SUBJECT/A", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writesubject, 1 },
  117.     { "WRITETO", "ADDRESS/A/M,ADD/S", NULL, 0, (void (*)(struct RexxHost *,void **,long,struct RexxMsg *)) rx_writeto, 1 },
  118.     { NULL, NULL, NULL, NULL, NULL }
  119. };
  120.  
  121. int        command_cnt = 72;
  122.  
  123. static struct arb_p_link link0[] = {
  124.     {"WRITE", 1}, {"USERINFO", 16}, {"S", 17}, {"RE", 28}, {"QUIT", 37}, {"NEWMAILFILE", 38},
  125.     {"MAIL", 39}, {"LISTSELECT", 67}, {"I", 68}, {"H", 71}, {"GET", 74}, {"FOLDERINFO", 80},
  126.     {"A", 81}, {NULL, 0} };
  127.  
  128. static struct arb_p_link link1[] = {
  129.     {"TO", 2}, {"S", 3}, {"REPLYTO", 6}, {"QUEUE", 7}, {"OPTIONS", 8}, {"MAILTO", 9},
  130.     {"LETTER", 10}, {"FROM", 11}, {"EDITOR", 12}, {"CC", 13}, {"BCC", 14}, {"ATTACH", 15},
  131.     {NULL, 0} };
  132.  
  133. static struct arb_p_link link3[] = {
  134.     {"UBJECT", 4}, {"END", 5}, {NULL, 0} };
  135.  
  136. static struct arb_p_link link17[] = {
  137.     {"HOW", 18}, {"ET", 19}, {"CREENTO", 25}, {NULL, 0} };
  138.  
  139. static struct arb_p_link link19[] = {
  140.     {"MAIL", 20}, {"F", 22}, {NULL, 0} };
  141.  
  142. static struct arb_p_link link20[] = {
  143.     {"FILE", 21}, {NULL, 0} };
  144.  
  145. static struct arb_p_link link22[] = {
  146.     {"OLDER", 23}, {"LAG", 24}, {NULL, 0} };
  147.  
  148. static struct arb_p_link link25[] = {
  149.     {"FRONT", 26}, {"BACK", 27}, {NULL, 0} };
  150.  
  151. static struct arb_p_link link28[] = {
  152.     {"QUEST", 29}, {"AD", 32}, {NULL, 0} };
  153.  
  154. static struct arb_p_link link29[] = {
  155.     {"STRING", 30}, {"FOLDER", 31}, {NULL, 0} };
  156.  
  157. static struct arb_p_link link32[] = {
  158.     {"SAVE", 33}, {"PRINT", 34}, {"INFO", 35}, {"CLOSE", 36}, {NULL, 0} };
  159.  
  160. static struct arb_p_link link39[] = {
  161.     {"WRITE", 40}, {"UPDATE", 41}, {"S", 42}, {"RE", 46}, {"MOVE", 49}, {"I", 50},
  162.     {"F", 53}, {"E", 56}, {"DELETE", 59}, {"C", 60}, {"BOUNCE", 65}, {"ARCHIVE", 66},
  163.     {NULL, 0} };
  164.  
  165. static struct arb_p_link link42[] = {
  166.     {"TATUS", 43}, {"END", 44}, {NULL, 0} };
  167.  
  168. static struct arb_p_link link44[] = {
  169.     {"ALL", 45}, {NULL, 0} };
  170.  
  171. static struct arb_p_link link46[] = {
  172.     {"PLY", 47}, {"AD", 48}, {NULL, 0} };
  173.  
  174. static struct arb_p_link link50[] = {
  175.     {"NFO", 51}, {"MPORT", 52}, {NULL, 0} };
  176.  
  177. static struct arb_p_link link53[] = {
  178.     {"ORWARD", 54}, {"ILTER", 55}, {NULL, 0} };
  179.  
  180. static struct arb_p_link link56[] = {
  181.     {"XPORT", 57}, {"DIT", 58}, {NULL, 0} };
  182.  
  183. static struct arb_p_link link60[] = {
  184.     {"OPY", 61}, {"H", 62}, {NULL, 0} };
  185.  
  186. static struct arb_p_link link62[] = {
  187.     {"ECK", 63}, {"ANGESUBJECT", 64}, {NULL, 0} };
  188.  
  189. static struct arb_p_link link68[] = {
  190.     {"SONLINE", 69}, {"NFO", 70}, {NULL, 0} };
  191.  
  192. static struct arb_p_link link71[] = {
  193.     {"IDE", 72}, {"ELP", 73}, {NULL, 0} };
  194.  
  195. static struct arb_p_link link74[] = {
  196.     {"URL", 75}, {"SELECTED", 76}, {"MAILINFO", 77}, {"FOLDERINFO", 78}, {"CONFIGINFO", 79}, {NULL, 0} };
  197.  
  198. static struct arb_p_link link81[] = {
  199.     {"PP", 82}, {"DDR", 85}, {NULL, 0} };
  200.  
  201. static struct arb_p_link link82[] = {
  202.     {"NOBUSY", 83}, {"BUSY", 84}, {NULL, 0} };
  203.  
  204. static struct arb_p_link link85[] = {
  205.     {"SAVE", 86}, {"RESOLVE", 87}, {"NEW", 88}, {"LOAD", 89}, {"INFO", 90}, {"GOTO", 91},
  206.     {"FIND", 92}, {"EDIT", 93}, {"DELETE", 94}, {NULL, 0} };
  207.  
  208. struct arb_p_state arb_p_state[] = {
  209.     {-1, link0}, {59, link1}, {71, NULL}, {69, link3}, {70, NULL},
  210.     {69, NULL}, {68, NULL}, {67, NULL}, {66, NULL}, {65, NULL},
  211.     {64, NULL}, {63, NULL}, {62, NULL}, {61, NULL}, {60, NULL},
  212.     {59, NULL}, {58, NULL}, {51, link17}, {57, NULL}, {53, link19},
  213.     {55, link20}, {56, NULL}, {53, link22}, {54, NULL}, {53, NULL},
  214.     {51, link25}, {52, NULL}, {51, NULL}, {44, link28}, {48, link29},
  215.     {50, NULL}, {49, NULL}, {44, link32}, {47, NULL}, {46, NULL},
  216.     {45, NULL}, {44, NULL}, {43, NULL}, {42, NULL}, {22, link39},
  217.     {41, NULL}, {40, NULL}, {37, link42}, {39, NULL}, {37, link44},
  218.     {38, NULL}, {35, link46}, {36, NULL}, {35, NULL}, {34, NULL},
  219.     {32, link50}, {33, NULL}, {32, NULL}, {30, link53}, {31, NULL},
  220.     {30, NULL}, {28, link56}, {29, NULL}, {28, NULL}, {27, NULL},
  221.     {24, link60}, {26, NULL}, {24, link62}, {25, NULL}, {24, NULL},
  222.     {23, NULL}, {22, NULL}, {21, NULL}, {19, link68}, {20, NULL},
  223.     {19, NULL}, {17, link71}, {18, NULL}, {17, NULL}, {12, link74},
  224.     {16, NULL}, {15, NULL}, {14, NULL}, {13, NULL}, {12, NULL},
  225.     {11, NULL}, {0, link81}, {9, link82}, {10, NULL}, {9, NULL},
  226.     {0, link85}, {8, NULL}, {7, NULL}, {6, NULL}, {5, NULL},
  227.     {4, NULL}, {3, NULL}, {2, NULL}, {1, NULL}, {0, NULL} 
  228.     };
  229.  
  230.